Salt : Use Salt State File#2
2016/10/08 |
This is the example to configure State Tree.
|
|
[1] | Put top.sls called "Top File" under the root directory you defined. |
[root@dlp ~]#
vi /srv/salt/top.sls base: # define target Minions '*': # define the name of State file - default # for example, Install and start httpd and MariaDB and also install PHP webserver: pkg.installed: - pkgs: - httpd - php - php-mbstring - php-pear - mariadb-server /var/www/html/index.php: file: - managed - source: salt://httpd/index.php - require: - pkg: webserver # initial setup script /tmp/setup.sql: file: - managed - source: salt://httpd/setup.sql enable_httpd: service.running: - name: httpd - enable: True - require: - pkg: webserver enable_mariadb: service.running: - name: mariadb - enable: True - require: - pkg: webserver setup_mariadb: cmd.run: - name: '/bin/mysql -u root < /tmp/setup.sql' - require: - service: enable_mariadb # if Firewalld is running, configure services {% set fw_status = salt['service.status']('firewalld') %} {% if fw_status %} setup_fw: cmd.run: - names: - '/bin/firewall-cmd --add-service={http,https,mysql}' - '/bin/firewall-cmd --add-service={http,https,mysql} --permanent' {% endif %} <?php print "Salt State Test Page"; ?> set password for root@localhost=password('password'); set password for root@'127.0.0.1'=password('password'); delete from mysql.user where user=''; delete from mysql.user where password=''; drop database test; # run state.apply ro apply settings [root@dlp ~]# salt "*" state.apply node01.srv.world: ---------- cmd_|-setup_fw_|-/bin/firewall-cmd --add-service={http,https,mysql} --permanent_|-run: ---------- __run_num__: 7 changes: ..... ..... name: mariadb result: True start_time: 19:56:52.911517 # verify [root@dlp ~]# salt "node01.srv.world" cmd.run 'systemctl status httpd' [root@dlp ~]# salt "node02.srv.world" cmd.run 'systemctl status httpd' node01.srv.world: * httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-10-17 10:56:52 JST; 2min 16s ago ..... .....[root@dlp ~]# salt "node01.srv.world" cmd.run 'systemctl status httpd' [root@dlp ~]# salt "node02.srv.world" cmd.run 'systemctl status httpd' node01.srv.world: * mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-10-17 10:56:57 JST; 2min 24s ago ..... .....[root@dlp ~]# salt "node01.srv.world" cmd.run 'mysql -u root -ppassword -e "show databases;"' [root@dlp ~]# salt "node02.srv.world" cmd.run 'systemctl status httpd' node01.srv.world: Database information_schema mysql performance_schema[root@dlp ~]# curl http://node01.srv.world/index.php Salt State Test Page |